As an increasing number of applications and services are being made available over networks such as the Internet, an increasing number of content, application, and/or service providers are turning to technologies such as cloud computing. Cloud computing, in general, is an approach to providing access to electronic resources through services, such as Web services, where the hardware and/or software used to support those services is dynamically scalable to meet the needs of the services at any given time. A customer typically will rent, lease, or otherwise pay for access to resources through the cloud, and thus does not have to purchase and maintain the hardware and/or software to provide access to these resources.
In many cases, a customer will receive a bill at the end of a billing cycle indicating the fees due for the amount of resource usage. Unfortunately, the amount of usage can vary significantly, which can result in unexpected fees incurred during the billing cycle. Many customers budget a certain amount of money per cycle for their resource usage. Customers would like to be aware of variations in usage as soon as possible in order to be able to address these variations before significant additional costs are incurred, but conventional monitoring and billing approaches do not provide such visibility.